Many personal computers (PCs) employ small computer system interface (SCSI) buses for controlling data transfers between a host computer system and peripheral devices, and among the peripheral devices. Generally, a single SCSI bus can support up to seven peripheral devices, in addition to the host system. SCSI bus protocol is directly implemented by the devices connected to the bus, thereby eliminating the need for a separate bus controller, and is described in detail by the American National Standards Institute in its publication entitled ANSI X3.13 1-1986, incorporated herein by reference.
The SCSI bus includes a set of conductive lines for carrying electrical bus signals and terminators at both ends of the bus. It is well known that both ends of a SCSI bus must be properly terminated to prevent noise on the bus and to maintain the bus in a known state. Typically, terminating means are provided within the host computer system for terminating one end of the bus. The other end of the bus is terminated by various methods, depending on how the subsystem is configured.
For example, some SCSI subsystems are configured using multiconductor cables to chain several peripheral devices together and connect them to a SCSI bus. To properly terminate the end of the bus in such subsystems, a user must physically install a terminating means onto the peripheral device connected to the end of the bus by, for example, plugging a cable adaptor containing terminating resistors into the unused port of the end device or by removing the housing of the end device and inserting a removable package of terminating resistors into a socket on the printed circuit board of the device.
Cable based subsystems such as those described above have certain disadvantages. First, bus protocol, described in the aforementioned ANSI X3.131-1986 publication, requires that a unique identification code be established for each device on the bus. Therefore, each time the devices are reconfigured or one or more of the devices are removed for servicing, the user must reestablish the device identification codes. Moreover, to properly terminate the bus, the user must determine which device is connected to the end of the bus and then install terminating means on that device while making sure that none of the other devices have terminating means installed thereon. Should the identification codes be improperly assigned or the terminating means be improperly installed, the subsystem will not function. As a result, reconfiguring the subsystem or servicing the devices is time-consuming, inconvenient and complicated.
As a solution to these problems, SCSI subsystems can be designed around a hardwired backplane to route one or more SCSI buses to the peripheral devices. Terminating means are installed on the backplane to properly terminate the buses. Drive bays are interconnected by the buses and provide an interface between the buses and the devices. As a result, there is no need for a user to install separate terminating means, as the buses are terminated at the terminating means installed on the backplane, nor must a user reestablish device identification codes each time a device is removed. Furthermore, assembly, service and customer upgrades are facilitated because there are no cables to disconnect and reconnect, and system insulation and reliability is increased significantly. However, backplane-based SCSI subsystems also have certain disadvantages. Because a backplane-based SCSI subsystem is necessarily hardwired, the flexibility to provide multiple drive (or other device) configurations is lost. Accordingly, such subsystems cannot be configured to provide for mirroring and duplexing, for example, which involve transferring identical sets of data to multiple sets of disk drives in case one drive becomes inoperable or one set of data is destroyed.
What is needed is a backplane-based SCSI subsystem which can be easily reconfigured by a user. This would be especially useful for reconfiguring a subsystem in multiple drive configurations.